package br.ufc.quixada.model.entidades;

import java.io.Serializable;
import java.util.Calendar;
import java.util.Date;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.Table;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;

@Entity
@Table(name="usuarios")
public class Usuario implements Serializable{
	
	@Id
	@GeneratedValue
	private long id;
	
	@Column(length=100, nullable=false)
	private String nome;
	
	@Column(length=50, nullable=false)
	private String senha;
	
	@Column(length=20)
	private String fone;
	
	@Column(name="data_nasc")
	@Temporal(TemporalType.DATE)
	private Date nascimento;
	
	@Column(length=50, nullable=false, unique=true)
	private String email;
	
	@Column(nullable = true, length=1)
	private String sexo;
	
	@Column(length=100)
	private String instituicao;
	
	@Column(length=100)
	private String rua;
	
	@Column(length=50)
	private String bairro;
	
	@Column(nullable = true)
	private int numero;
	
	@Column(length=50, nullable=true)
	private String cidade;
	
	@Column(length=2, nullable=true)
	private String uf;
	
	@Column(nullable=true, columnDefinition="boolean default false" )
	private boolean status;
	
	private Date dataCriacao;
	
	@Column(length=100)
	private String hashCodigoCadastro;
	
	public long getId() {
		return id;
	}
	
	public void setId(long id) {
		this.id = id;
	}
	
	public String getNome() {
		return nome;
	}
	
	public void setNome(String nome) {
		this.nome = nome;
	}
	
	public String getSenha() {
		return senha;
	}
	
	public void setSenha(String senha) {
		this.senha = senha;
	}
	
	public String getFone() {
		return fone;
	}
	
	public void setFone(String fone) {
		this.fone = fone;
	}
	
	public Date getNascimento() {
		return nascimento;
	}
	
	public void setNascimento(Date nascimento) {
		this.nascimento = nascimento;
	}
	
	public String getEmail() {
		return email;
	}
	
	public void setEmail(String email) {
		this.email = email;
	}
	
	public String getSexo() {
		return sexo;
	}

	public void setSexo(String sexo) {
		this.sexo = sexo;
	}

	public String getInstituicao() {
		return instituicao;
	}
	
	public void setInstituicao(String instituicao) {
		this.instituicao = instituicao;
	}
	
	public String getRua() {
		return rua;
	}
	
	public void setRua(String rua) {
		this.rua = rua;
	}
	
	public String getBairro() {
		return bairro;
	}
	
	public void setBairro(String bairro) {
		this.bairro = bairro;
	}
	
	public int getNumero() {
		return numero;
	}
	
	public void setNumero(int numero) {
		this.numero = numero;
	}
	
	public String getCidade() {
		return cidade;
	}
	
	public void setCidade(String cidade) {
		this.cidade = cidade;
	}
	
	public String getUf() {
		return uf;
	}
	
	public void setUf(String uf) {
		this.uf = uf;
	}

	public boolean isStatus() {
		return status;
	}

	public void setStatus(boolean status) {
		this.status = status;
	}
	
	public Date getDataCriacao(){
		return dataCriacao;
	}
	
	public void setDataCriacao(Date dataCriacao){
		this.dataCriacao = dataCriacao;
	}
	
	public String getHashCodigoCadastro(){
		return hashCodigoCadastro;
	}
	
	public void setHashCodigoCadastro(String hashCodigoCadastro){
		this.hashCodigoCadastro = hashCodigoCadastro;
	}
}
